LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

P-luminary

名词(短语)和名词性从句

2022/3/30

名词(短语)能做什么成分

名词(短语)分别做主语宾语表语同位语

同位语(名词、代词、动名词、从句)是用来解释补充说明名词的成分,通常跟在名词后

动名词:playing football…

在作文中只要出现名词(短语),就可以试图加另外一个名词(短语)做它的同位语,但是前后通常要用逗号破折号隔开

英语在我们与他人的交流中显得很重要
English is playing a key role in our communication with others.
English,a worldwide language,is playing a key role in our communication with others.
    
污染越来越严重
Pollution becomes increasingly serious.
Pollution,a universal issue throughout the world,becomes increasingly serious.
    
我们应该支持国货
We should support our domestic products.
We,Chinese customers,should support our domestic products,goods made in China.

加上同位语后,有没有发现句子就显格外”洋气“,你写的英语也就更加地道!!

什么是名词性从句

从句“就是引导词(连词) + 主语 + 谓语

名词性从句又可分别称为 主语从句宾语从句表语从句同位语从句

从句做主语,就是主语从句。从句做宾语,就是宾语从句。

从句做表语,就是表语从句。从句做同位语,就是同位语从句。

只有从句才能在另外一个句子里充当成分,否则就会出现一句话有两个动词的错误

一个完整的句子在另外一个句子中是不能做任何成分的。如果想让一个句子在另一个句子中做成分,就必须在它前面加上引导词,使它变成从句

我爱你是显而易见的。
I love you is obvious.
I love you [这个完整的句子不能在另一个句子中做主语,所以要在 I love you 前面加一个引导词,把它变成从句]
That I love you is obvious.
名词性从句的引导词是按照从句的类型来划分的
  • that : 当从句是陈述句时,that在从句中不充当成分,也没有实义,在不影响句子意思的情况下,宾语从句的引导词that可以省略
  • whether/if:当从句是一般疑问句时,whether/if在从句中不充当成分,意为“是否”,在这两个引导词中,whether可以引导所有的名词性从句,而if只能引导宾语从句
  • 特殊疑问词:当从句是特殊疑问句时,常见的连接副词有:when,where,why,how;常见的连接代词有:who,whom,what,which,whose,这些特殊疑问词一般都有固定意思,不能省略

(一般疑问句主要由be动词、情态动词或助动词

(特殊疑问句主要由特殊疑问词+一般疑问句构成

★练习

主语从句

英语中通常把主语从句放到句末,用it做形式主语

主语从句的满分表达就是it作形式主语

**不定式(短语)、动名词(短语)**在句子中做主语时,常用it做形式主语,而将真正的主语放在句尾

  1. It + is + adj/n. + to do sth
  2. It + v. + to do sth
  3. It’s + adj./n. + doing sth

当一个名词(短语)或从句是同位语时,它应该写在它所要解释说明的名词(短语)之后,其顺序为”名词(短语) + 引导词 + 从句

长难句分析

引导词出现在句首,且和主句的谓语动词(词组)之间没有逗号,那么句首的从句就一定是主语从句。

主语从句从句首开始到主句的谓语动词(词组)之前结束

阅读全文

难度稍露尖尖角——并列句

2022/3/30

常见的并列连词

平行关系(并且、而且):and,not only…but also…,both…and…,neither…nor…

转折关系(然而、但是):but,while,yet,whereas

选择关系(或者、要么):or,whether…or not…,either…or…

因果关系(因为、所以):because,for,so

递进关系(然后、再者):无

与并列连词同义的逻辑关系词一般是副词和介词短语

  • 平行关系

副词:similarly,equally,likewise

介词短语:at the same time,in the meanwhile

  • 转折关系

    副词:however,nevertheless,nonetheless,unfortunately

    介词短语:on the contrary,in/by contrast

  • 选择关系

副词:alternatively

  • 因果关系

    副词:therefore,thus,consequently,hence

    介词短语:as a result,as a consequence

  • 递进关系

     **副词**:besides,additionally,subsequently
    
     **介词短语**:in addition
    

    使用副词介词短语时,需要把逗号变成句号,或者是在副词或介词短语前面加上and

    逻辑关系词就是英语形合的一个明显标志

并列句的省略现象

  • 省略主谓:并列连词后的主谓和前面的主谓一致时,可以省略后面句子中的主谓
  • 省略be动词:并列句前后主语不同,但是几个句子的谓语动词都是be动词,可以省略后面句子的be动词
  • 省略主语:并列连词后的主语与前面的主语一样时可以省略
操作步骤(适合英译汉):[动词,时态,语态,主谓宾]
1. 找动词(词组)
2. 找并列连词
3. 分析连词前后的句子结构(介短 + 副 + 名短 + 定语 etc)
注:一句话只要有省略,那么省略一定会发生在并列连词的后面;所以并列连词后面有的成分在并列连词前面通常都要有;并列连词前面有,而并列连词后面没有的成分便是省略的内容。
阅读全文

hexo发生error:spawn failed错误的解决方法

2022/3/29

问题描述

  • hexo d 上传GitHub时出现错误:

    error:spawn failed…

总结

  • 问题大多是因为git进行push或者hexo d的时候改变了一些.deploy_git文件下的内容。

解决办法(一):

  • 删除博客目录下的.deploy_git文件夹;

  • 输入:git config –global core.autocrlf false

  • 依次输入

    hexo clean

    hexo g

    hexo d

    (暴力解决,亲测有效,但后期仍可能出现问题,可参考方法二)

解决办法(二):

  • 此方法仅需要改一处的代码即可
  • 打开博客目录下的.deploy_git ==> **.**git(需打开文件夹上方查看,勾选隐藏的项目) ==> config(我是用vscode打开的)
  • 然后代码中url里https改成http就OK了”
阅读全文

C3P0_DataSources

2022/3/29
package jdbc.sample;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import jdbc.common.DbUtils;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class C3P0Sample {
    public static void main(String[] args) {
        //1. 加载配置文件
        //2. 创建DataSource
        DataSource dataSource = new ComboPooledDataSource();
        //3. 得到数据库连接
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = dataSource.getConnection();
            pstmt = conn.prepareStatement("select * from employee limit 0,10");
            rs = pstmt.executeQuery();
            while(rs.next()){
                Integer eno = rs.getInt("eno");
                String ename = rs.getString("ename");
                String dname = rs.getString("dname");
                Float salary = rs.getFloat("salary");
                System.out.println(dname + "-" + eno + "-" + ename  + "-" + salary);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DbUtils.closeConnection(rs,pstmt,conn);
        }
    }
}
阅读全文

Git上传文件至GitHub

2022/3/29

前提条件:

SpringCloud-news_Swagger2_Mybatis_Redis_FastDFS_AliOSS_Mongodb_Summernote_RabbitMQ_Eureka_Ribbon_Feign_Hystrix_Zuul_Config_Bus_Stream_Sleuth

SpringCloud-news_Redis_FastDFS_AliOSS_Mongodb_Summernote_RabbitMQ_Eureka_Ribbon_Feign_Hystrix_Zuul

  1. 已安装且配置好git
  2. 已拥有GitHub账号

操作步骤:

  1. 新建文件夹

  2. 文件夹内打开Git Bush Here

  3. 执行指令:git init (增加隐藏文件夹.git)

  4. 执行指令:git add . (将所有文件添加到仓库) ★ ★ ★ ★

    执行指令:git add “······” (省略号为添加指定的文件) (注:文件名若带空格需要转义 空格 => %20)

  5. 执行指令:git commit -m “提交文件” (双引号内是提交注释) ★ ★ ★ ★

  6. 到GitHub仓库复制仓库地址(若已添加仓库地址 则执行)

  7. 执行指令:git remote add origin “······”  (省略号为自己仓库的地址HTML 尽量不用SSH)work

  8. 执行指令:git push -u origin master ★ ★ ★ ★

加”★ ★ ★ ★”表示并非第一次提交的情况下所执行的步骤

推送到自己的仓库可能遇到如下问题:
error: remote origin already exists.表示远程仓库已存在。
因此你要进行以下操作:
1、先输入git remote rm origin 删除关联的origin的远程库
2、关联自己的仓库 git remote add origin https://gitee.com/xxxxxx.git
3、最后git push origin master,这样就推送到自己的仓库了。

在使用git push的时候报Your branch is up to date with ‘origin/master’. nothing to commit, working tree clean

解决办法
rm -rf .git/
git init
git remote add origin XXXXXX(地址改成你git clone的地址)
git commit -m “Commit message”

在执行git commit 命令时错误信息显示的是项目的文件没有“add”,需要先执行git add 文件名,然后再执行git commit -m "xxx",
错误信息:nothing added to commit but untracked files present
git add README.md
git add src/
随后再完成7. 8.

git push -f origin master

可能遇见的bug:

解决方法:

方法①:在Github手动上传(小于25MB文件) Add file —> Upload files

方法②

  • 执行指令:git pull –rebase origin master

  • 执行指令:git push -u origin master (开始上传)

方法③

  • 想要避免这种问题,就要保持创建的仓库是一个空仓库,什么都没有。
  • 就是创建仓库的时候不要勾选“使用Readme文件初始化这个仓库”


Bug2

  • 对于error: failed to push some refsto ‘远程仓库地址’
    1、使用如下命令

    git pull –rebase origin master

    2 、然后再进行上传

    git push origin master

阅读全文

HumanResource_JDBC_Case

2022/3/29

HumanResourceApplication

package jdbc.hrapp.command;

import java.sql.SQLException;
import java.util.Scanner;

public class HumanResourceApplication {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        System.out.println("1-查询部门员工");
        System.out.println("2-办理员工入职");
        System.out.println("3-更新员工薪资");
        System.out.println("4-员工离职手续");
        System.out.println("5-分页查询员工数据");
        System.out.println("请选择功能");
        Scanner in = new Scanner(System.in);
        Integer cmd = in.nextInt();
        Command command = null;
        switch (cmd){
            case 1://查询部门员工
                command = new PstmtQueryCommand();
                command.execute();
                break;
            case 2://办理员工入职
                command = new InsertCommand();
                command.execute();
                break;
            case 3://更新员工薪资
                command = new UpdateCommand();
                command.execute();
                break;
            case 4://离职员工
                command = new DeleteCommand();
                command.execute();
                break;
            case 5://分页查询员工数据
                command = new PaginationCommand();
                command.execute();
                break;
        }
    }
}

PstmtQueryCommand(查询部门员工)

package jdbc.hrapp.command;

import java.sql.*;
import java.util.Scanner;

public class PstmtQueryCommand implements Command{

    @Override
    public void execute() throws ClassNotFoundException, SQLException {
        System.out.println("请输入部门名称: ");
        Scanner in = new Scanner(System.in);
        String pdname = in.next();
        Connection conn = null; //放外面可扩大生命周期
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            //1. 加载并注册侧JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");

            //2. 创建数据库连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&&allowPublicKeyRetrieval=true","root","root");

            //3. 创建Statement对象
            String sql = "select * from employee where dname=? and eno > ?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,pdname);
            pstmt.setInt(2,3100);

            //结果集
            rs = pstmt.executeQuery();

            //4. 遍历查询结果
            //rs.next() 返回布尔值,代表是否存在下一条记录
            //如果有,返回true,同时结果集提取下一条记录
            //如果没有,返回false,循环就会停止
            while(rs.next()){
               Integer eno = rs.getInt(1);//JDBC中字段索引从1开始,而不是0
                String ename = rs.getString("ename");
                Float salary = rs.getFloat("salary");
                String dname = rs.getString("dname");
                System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            if(rs != null){
                rs.close();
            }
            if(pstmt != null){
                pstmt.close();
            }
            if(conn != null && !conn.isClosed()){
                conn.close();
            }
            //5. 关闭连接,释放资源
            conn.close();
        }
    }
}

InsertCommand(办理员工入职)

package jdbc.hrapp.command;

import jdbc.common.DbUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

/**
 * 新增员工数据
 */
public class InsertCommand implements Command {
    @Override
    public void execute() throws ClassNotFoundException, SQLException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入员工编号: ");
        int eno = in.nextInt();
        System.out.println("请输入员工姓名: ");
        String ename = in.next();
        System.out.println("请输入员工薪资: ");
        Float salary = in.nextFloat();
        System.out.println("请输入隶属部门: ");
        String dname = in.next();
        System.out.println("请输入入职日期: ");
        String strHiredate = in.next();
        //String到java.sql.Date分为两步:

        //1、String转为java.util.Date
        java.util.Date udHiredate = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            udHiredate = sdf.parse(strHiredate);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        //2、java.util.Date转为java.sql.Date
        long time = udHiredate.getTime();//获取自1970年到现在的毫秒数
        java.sql.Date sdHiredate = new java.sql.Date(time);

        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            //引用DbUtils类的置入方法
            conn = DbUtils.getConnection();
            //1、参数化的写操作
            String sql = "insert into employee(eno,ename,salary,dname,hiredate) values(?,?,?,?,?)";
            //2、对这些参数进行赋值
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,eno);
            pstmt.setString(2,ename);
            pstmt.setFloat(3,salary);
            pstmt.setString(4,dname);
            pstmt.setDate(5,sdHiredate);//java.sql.Date
            //3、对所有写操作进行更新
            int cnt = pstmt.executeUpdate();//所有写操作都使用executeUpdate
            System.out.println("cnt: " + cnt);
            System.out.println(ename + "员工入职手续已办理");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            DbUtils.closeConnection(null, pstmt, conn);
        }

    }
}

UpdateCommand(更新员工薪资)

package jdbc.hrapp.command;

import jdbc.common.DbUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class UpdateCommand implements Command{
    @Override
    public void execute() throws ClassNotFoundException, SQLException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入员工编号: ");
        int eno = in.nextInt();
        System.out.println("请输入员工新的薪资");
        float salary = in.nextFloat();
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DbUtils.getConnection();
            String sql = "update employee set salary =? where eno=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setFloat(1,salary);
            pstmt.setInt(2,eno);
            int cnt = pstmt.executeUpdate();
            if(cnt == 1){
                System.out.println("员工薪资调整完毕");
            }else {
                System.out.println("未找到" + eno + "编号员工数据");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DbUtils.closeConnection(null,pstmt,conn);
        }
    }
}

DeleteCommand(离职员工)

package jdbc.hrapp.command;

import jdbc.common.DbUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class DeleteCommand implements Command{
    @Override
    public void execute() throws ClassNotFoundException, SQLException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入员工编号: ");
        int eno = in.nextInt();

        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = DbUtils.getConnection();
            String sql = "delete from employee where eno =?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setFloat(1,eno);
            int cnt = pstmt.executeUpdate();
            if(cnt == 1){
                System.out.println("员工离职手续已完成");
            }else {
                System.out.println("未找到" + eno + "编号员工数据");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DbUtils.closeConnection(null,pstmt,conn);
        }
    }
}

PaginationCommand(分页查询员工数据)

package jdbc.hrapp.command;

import jdbc.common.DbUtils;
import jdbc.hrapp.entily.Employee;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 分页查询员工数据
 */
public class PaginationCommand implements Command{
    @Override
    public void execute() throws ClassNotFoundException, SQLException {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入页号:");
        int page = in.nextInt();
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        //List每条里面都是Employee实体对象
        List<Employee> list = new ArrayList();
        try {
            conn = DbUtils.getConnection();//从可变参数向后取10个参数
            String sql = "select * from employee limit ?,10";
            pstmt = conn.prepareStatement(sql); //第一页位置从0~9
            pstmt.setInt(1,(page - 1) * 10);
            rs = pstmt.executeQuery();
            while(rs.next()){
                Integer eno = rs.getInt("eno");
                String ename = rs.getString("ename");
                Float salary = rs.getFloat("salary");
                String danme = rs.getString("dname");
                Date hiredate  = rs.getDate("hiredate");
                //每产生一个就封装为employee对象
                Employee emp = new Employee();
                emp.setEno(eno);
                emp.setEname(ename);
                emp.setSalary(salary);
                emp.setDname(danme);
                emp.setHiredate(hiredate);
                list.add(emp);
            }
            System.out.println(list.size());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DbUtils.closeConnection(rs,pstmt,conn);
        }
    }
}
阅读全文

标准JDBC操作五步骤 + 自动提交事务

2022/3/29

标准JDBC操作五步骤

package jdbc.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 标准JDBC操作五步骤
 */
public class StandardJDBCSample {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            //1. 加载并注册JDBC驱动
                    //8.0
            Class.forName("com.mysql.cj.jdbc.Driver");
                 //5.0
            Class.forName("com.mysql.jdbc.Driver");
            //2. 创建数据库连接
                 //8.0
            conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&&allowPublicKeyRetrieval=true",
                    "root", "root"
            );
                 //5.0
            DriverManager.getConnection("jdbc:mysql://localhost:3306...","root","root");
            //3. 创建Statement对象
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("select * from employee where dname='研发部'");
            //4. 遍历查询结果
            while (rs.next()) {
                Integer eno = rs.getInt(1); //eno
                String ename = rs.getString("ename");
                Float salary = rs.getFloat("salary");
                String dname = rs.getString("dname");
                System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            try {//5. 关闭连接,释放资源
                if (conn != null && conn.isClosed() == false) {
 
                    conn.close();
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }
        }

    }
}

自动提交事务

package jdbc.sample;

import jdbc.common.DbUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;

/**
 * JDBC批处理
 */
public class BatchSample {
    //标准方式插入若干数据
    private static void tc1(){
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            long startTime = new Date().getTime();
            conn = DbUtils.getConnection();
            //JDBC默认使用自动提交模式
            conn.setAutoCommit(false);//关闭自动提交
            String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";
            for (int i=100000;i<200000;i++){
//                if (i == 10) {
////                    throw new RuntimeException("插入失败");
//                }
                pstmt = conn.prepareStatement(sql);
                pstmt.setInt(1, i);
                pstmt.setString(2, "员工" + i);
                pstmt.setFloat(3, 4000f);
                pstmt.setString(4, "市场部");
                pstmt.executeUpdate();
            }
            conn.commit();//提交数据
            long endTime = new Date().getTime();
            System.out.println("tc1()执行时长:" + (endTime-startTime));
        } catch (Exception e) {
            e.printStackTrace();
            try {
                if(conn != null && !conn.isClosed()) {
                    conn.rollback();//回滚数据
                }
            }catch (SQLException ex){
                ex.printStackTrace();
            }
        } finally {
            DbUtils.closeConnection(null, pstmt, conn);
        }
    }


    //使用批处理插入若干数据
    private static void tc2(){
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            long startTime = new Date().getTime();
            conn = DbUtils.getConnection();
            //JDBC默认使用自动提交模式
            conn.setAutoCommit(false);//关闭自动提交
            String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";
            pstmt = conn.prepareStatement(sql);
            for (int i=200000;i<300000;i++){
//                if (i == 10) {
////                    throw new RuntimeException("插入失败");
//                }
                pstmt.setInt(1, i);
                pstmt.setString(2, "员工" + i);
                pstmt.setFloat(3, 4000f);
                pstmt.setString(4, "市场部");
                pstmt.addBatch();//将参数加入批处理任务
//                pstmt.executeUpdate();对同一个对象进行操作所以注释
            }
            pstmt.executeBatch();//执行批处理任务(一次性打包 一下子全部发给mysql)
            conn.commit();//提交数据
            long endTime = new Date().getTime();
            System.out.println("tc2()执行时长:" + (endTime-startTime));
        } catch (Exception e) {
            e.printStackTrace();
            try {
                if(conn != null && !conn.isClosed()) {
                    conn.rollback();//回滚数据
                }
            }catch (SQLException ex){
                ex.printStackTrace();
            }
        } finally {
            DbUtils.closeConnection(null, pstmt, conn);
        }
    }


    public static void main(String[] args) {
        tc1();
        tc2();
    }
}

阅读全文

Apache_Druid

2022/3/29
package jdbc.sample;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import jdbc.hrapp.entily.Employee;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;

/**
 * Apache DBUtils + Druid联合使用演示
 */
public class DbUtilsSample {
    private static void query(){
        Properties properties = new Properties();
        String propertyFile = DbUtilsSample.class.getResource("/druid-config.properties").getPath();
        try {
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            //利用Apache DbUtils大幅简化了数据的提取过程
            QueryRunner qr = new QueryRunner(dataSource);
            List<Employee> list =  qr.query("select * from employee limit ?,10",
                    new BeanListHandler<>(Employee.class),
                    new Object[]{10});
            for (Employee emp : list) {
                System.out.println(emp.getEname());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void update(){
        Properties properties = new Properties();
        String propertyFile = DbUtilsSample.class.getResource("/druid-config.properties").getPath();
        Connection conn = null;
        try {
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            conn = dataSource.getConnection();
            conn.setAutoCommit(false);//对数据进行修改
            String sql1 = "update employee set salary=salary+1000 where eno=?";
            String sql2 = "update employee set salary=salary-500 where eno=?";
            QueryRunner qr = new QueryRunner();//用于数据的查询和写入
            qr.update(conn,sql1,new Object[]{1000});
            qr.update(conn,sql2,new Object[]{1001});
            conn.commit();
        } catch (Exception e) {
            e.printStackTrace();
            try {
                if(conn != null && !conn.isClosed()) {
                    conn.rollback();
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        } finally {
            try {
                if(conn != null && !conn.isClosed()) {
                    conn.close(); //数据库回收
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
//        query();
        update();
    }
}
阅读全文

Navicat破解

2022/3/28

阅读全文

知识点の做题技巧

2022/3/28

①

②

修饰小模块

  1. adj + n ==> 前置修饰
  2. the + adj ==> 一类人
  3. adv + adj + n ==> 有adj的长翻译
  4. n + doing(主) + prep + (n);n + done + perp + (n)
  5. n + prep + n (A of B)
  6. n + todo + n

动宾模块

  1. vt+n == vi + prep + n

阅读理解(不做主观上的任何推理)

题干与题干之间拥有着千丝万缕的练习

题干重复多的词不可以引导,过期作废(不可定位,但与文章中心有联系)

先题后问,顺序一致

定位范围:定位句、上下句、定位段(正确答案是若干句)

正确答案特征:同义改写(对应型、取反型、归纳总结型改写)

干扰选项特征:优先排除绝对化的选项(未提及[无]、不正确[、反]、答非所问)

细节题解题原则(局部)
  1. 因果关系(why)(beacuse) => 观察后方跟的原因/结果

因果关联词:because(of)、since、as、for、in that、as a result、consequently、thus、hence、···from(后 + 原因)、···to(把···归咎于) <=> contribute to(导致···结果) 文中的“中文注释”非常重要(与中心/正确答案相关)

  1. 转折对比关系(注意中文)

转折关系词:but、yet、however、while(时间,前后对比)、though、although、nevertheless、in spite of、actually、fortunately、in contrast、on the contary、in fact

  1. 词汇题(通过上下句的逻辑关系,找近义词或反义词)

句子相同句子 => 同义词,句子相反句子 => 反义词

选词填空

长篇阅读(考察视力)

出现的问题:顺序打乱、定位词不明显(特有词)、对应关系不唯一、段落长、多选

解决问题

  • 超纲词(原词复现,同义替换,同根词)
  • 关键词(唯一性,标题词[×],出现三次以上[×])
  • 选两个以上的定位词
    • A and B 消极词
    • A of B
    • adv. + v.
    • adj. + n.
    • 否定意义的词
    • 非文本主题的词(讲A的时候突然说B)
    • 文字形式的数字
阅读全文
头像
Asuna
You are the one who can always get to me even with screen between us.